Skip to content

[FEAT] [UI] Internalize igz-controls from dashboard-react-controls#3713

Open
arturrybalskyy-dev wants to merge 3 commits into
mlrun:developmentfrom
arturrybalskyy-dev:feat/ML-12800/internalize-igz-controls
Open

[FEAT] [UI] Internalize igz-controls from dashboard-react-controls#3713
arturrybalskyy-dev wants to merge 3 commits into
mlrun:developmentfrom
arturrybalskyy-dev:feat/ML-12800/internalize-igz-controls

Conversation

@arturrybalskyy-dev

Copy link
Copy Markdown
Contributor

📝 Description

Moves all used dashboard-react-controls (DRC) components, hooks, utils, constants, types, styles, and images into ui/src/igz-controls/ and redirects the existing igz-controls Vite alias from node_modules to the local path.

This removes the iguazio.dashboard-react-controls npm dependency entirely. All 391 source files that import from igz-controls/... require zero changes - the alias preservation strategy ensures full backwards compatibility.


🛠️ Changes Made

  • Added ui/src/igz-controls/ - full local copy of all used DRC entities (components, hooks, utils, constants, types, scss, fonts, images, nextGenComponents)
  • Updated vite.config.mjs and vitest.config.mjs - redirected igz-controls alias from node_modules/iguazio.dashboard-react-controls/dist to src/igz-controls/
  • Updated jsconfig.json and tsconfig.json - added matching path mappings for IDE resolution
  • Updated package.json - removed iguazio.dashboard-react-controls dependency; removed nli/nui scripts that installed/updated DRC
  • Updated eslint.config.mjs - added src/igz-controls/nextGenComponents/** to ignores (TypeScript files requiring TS-aware parser)
  • Updated .github/workflows/ci.yaml - updated error hint to reference ui/src/igz-controls/ instead of the removed npm package
  • Added src/igz-controls/index.scss —-replaces the former dist/index.css global stylesheet bundle

✅ Checklist

  • I have given the PR a well-structured title describing the domain and the specific change that was made
  • I tested the changes in the browser (locally or via preview build)
  • I confirmed that existing tests pass
  • I added or updated unit / integration tests (if needed)
  • I checked that this change doesn't introduce new console warnings or lint / formatting errors
  • I updated the relevant Jira ticket with the appropriate details and status

🔗 References

  • Related ticket / issue: ML-12800

🚨 Potentially Breaking Changes

  • Yes
  • No

Includes DRC change

  • Yes
  • No

🔍 Additional Notes

  • Unused entities not moved: ChipForm component and proxyServerConfig util were intentionally excluded per task requirement ("Do not move unused entities")
  • Images: 43 unused images were identified and excluded from the migration

@Taras-Hlukhovetskyi Taras-Hlukhovetskyi left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also it would be nice if you will refactor imports to get reed of this alias. Element move to element, components to common, utils to utils and so on.

And please check if there is no new commits was added to DRC since you moved files
Thank you

Comment thread vite.config.mjs Outdated
),
'igz-controls/index.css': path.resolve(__dirname, 'src/igz-controls/index.scss'),
'igz-controls': path.resolve(__dirname, 'src/igz-controls'),
'@igz-controls': path.resolve(__dirname, 'src/igz-controls/nextGenComponents'),

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

duplication '@igz-controls': path.resolve(__dirname, 'src/igz-controls/nextGenComponents'), and 'igz-controls/nextGenComponents': path.resolve(

Comment thread vitest.config.mjs Outdated
{ find: 'igz-controls/nextGenComponents', replacement: path.resolve(__dirname, 'src/igz-controls/nextGenComponents/index.ts') },
{ find: 'igz-controls/index.css', replacement: path.resolve(__dirname, 'src/igz-controls/index.scss') },
{ find: 'igz-controls', replacement: path.resolve(__dirname, 'src/igz-controls') },
{ find: '@igz-controls', replacement: path.resolve(__dirname, 'src/igz-controls/nextGenComponents') },

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

duplications src/igz-controls/nextGenComponents

Comment thread eslint.config.mjs Outdated

export default [
{ ignores: ['dist'] },
{ ignores: ['dist', 'src/igz-controls/nextGenComponents/**'] },

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why nextGenComponents are exlcluded? Pls add separete rules for typescript (qunique) and parser as we have in DRC

Comment thread tailwind.config.js
@@ -23,7 +23,8 @@ module.exports = {
darkMode: ['class'],
content: [
'./src/nextGenComponents/**/*.{js,jsx,ts,tsx}',
'./node_modules/iguazio.dashboard-react-controls/dist/nextGenComponents/**/*.{js,mjs}'
'./src/igz-controls/nextGenComponents/**/*.{js,jsx,ts,tsx}',
'./src/layout/**/*.{js,jsx,ts,tsx}'

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we need this path './src/layout/**/*.{js,jsx,ts,tsx}' ?

@Taras-Hlukhovetskyi

Copy link
Copy Markdown
Collaborator

@arturrybalskyy-dev pls also get letest files from DRC and add description the last coment on DRC that we fetched files from so we will update it again before the merge if nedded

@Taras-Hlukhovetskyi Taras-Hlukhovetskyi added the Infrastructure Infrastructure, github actions, docker label Jul 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1.13 Infrastructure Infrastructure, github actions, docker

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants